let str = `get1_install2_app3_list4_by5_android6`, result_str='';
    // result_str = `get1InstallApp3ListBy5Android`;
// 1. 要转换就需要知道str与result_str的区别
// （1）可以看出去删除了下划线_
let arr = str.split('_');
// （2）进行数组的迭代
arr.map((item, index) => {
    if (index % 2 === 1) {  
        // (3) 首字母大写
        item = item.charAt(0).toUpperCase() + item.slice(1);
        // (4) 删除末尾
        item = item.substring(0, item.length - 1);
    }
    result_str += item;
})
console.log(result_str);


let arr = [], // 我们想要的数组
    i = 0,  // 第一个初始值
    clear_tag = false; // 定时器清空标志
const num = 1000; // 我们设定的范围
let timeInterval = setInterval(() => { // 方法1
    i < num ? arr.push(++i) : clearInterval(timeInterval);
    if (i === num && !clear_tag) {
        clear_tag = true;
        console.log(arr);
    }
}, 0);
let arr = Array.from(new Array(num)).map((item, index) => ++index); // 方法2
let arr = Array.from(new Array(num), (item, index) => ++index); // 方法3
console.log(arr)

let obj1 = { // 首先假设两个对象
    name: '111',
    age: 11,
    info: {
        class: 12
    }
}, obj2 = {
    name: '111',
    age: 11,
    info: {
        class: 12
    }
};
// (1) 直接用全等，测试一下
console.log(obj1 === obj2); // false 那意味 着全等无法解决当前情况
// （2）上述不行的原因是因为浅拷贝与深拷贝的问题， 那么我们可以使用递归尝试一下
function isObjEqual(a, b) {
    // 首先，我们可以想到的是返回对象的属性名列表
    // 需要注意的是，它只能返回一层的属性名，这意味着我们需要对其进行递归
    let aKeys = Object.getOwnPropertyNames(a);
    let bKeys = Object.getOwnPropertyNames(b);
    // 当然，如果它第一次属性名列表就不相同的话，我们就没必要继续往下递归了
    if (aKeys.length != bKeys.length) { // 数组对比的话，我们很容易想到长度比较
        return false;
    }
    // 然后是对属性名进行逐个比较
    for(let i = 0; i< aKeys.length; i++) {
        let item = aKeys[i]
        let aVal = a[item], // 对应的属性值
            bVal = b[item];    
        if (typeof aVal === 'object') { // 是对象，便进行递归调用
            if(isObjEqual(aVal, bVal)) {
                return true;
            } else {
                return false;
            }
        } else if (aVal !== bVal) { // 属性值不同
            return false;
        }
    }
    return true;
}
console.log(isObjEqual(obj1, obj2))
